In computer representation of numbers various representations may be used, including two's complement, integer, unsigned, single precision, double precision, and floating-point, among others. Moreover, there are combinations of these representations, such as single-precision floating-point and double-precision floating-point for example.
Floating-point is a format sometimes referred to as a scientific format, with a significand multiplied by a base to an exponent. For IEEE 754, three types of allowed floating-point formats are: single-precision floating-point (known as “float” in the C computer language (“C”), double-precision floating-point (known as “double” in C), and half-precision floating-point. In broad terms, differences between double, single, and half precisions are respective bit widths of their respective exponent and significand fields.
More recently, half-precision floating-point has been gaining acceptance in some data storage applications, namely in applications with a lower precision threshold in order to occupy less storage space in memory. Along those lines, for IEEE 754-2008, a 16-bit base 2 format (“binary16”) is used for half-precision numbers. In comparison to some other binary formats, half-precision binary floating-point numbers use less storage and less bandwidth though with less precision and less range. However, half-precision floating-point formatted numbers have a larger dynamic range than comparable integer formatted numbers.
Hence, it is desirable and useful to provide circuitry for an exponential operator for a half-precision floating-point format.